#pragma once
#include "rp2350_reg.h"
typedef enum reset_num_rp2350 {
    RESET_ADC = 0, ///< Select ADC to be reset
    RESET_BUSCTRL = 1, ///< Select BUSCTRL to be reset
    RESET_DMA = 2, ///< Select DMA to be reset
    RESET_HSTX = 3, ///< Select HSTX to be reset
    RESET_I2C0 = 4, ///< Select I2C0 to be reset
    RESET_I2C1 = 5, ///< Select I2C1 to be reset
    RESET_IO_BANK0 = 6, ///< Select IO_BANK0 to be reset
    RESET_IO_QSPI = 7, ///< Select IO_QSPI to be reset
    RESET_JTAG = 8, ///< Select JTAG to be reset
    RESET_PADS_BANK0 = 9, ///< Select PADS_BANK0 to be reset
    RESET_PADS_QSPI = 10, ///< Select PADS_QSPI to be reset
    RESET_PIO0 = 11, ///< Select PIO0 to be reset
    RESET_PIO1 = 12, ///< Select PIO1 to be reset
    RESET_PIO2 = 13, ///< Select PIO2 to be reset
    RESET_PLL_SYS = 14, ///< Select PLL_SYS to be reset
    RESET_PLL_USB = 15, ///< Select PLL_USB to be reset
    RESET_PWM = 16, ///< Select PWM to be reset
    RESET_SHA256 = 17, ///< Select SHA256 to be reset
    RESET_SPI0 = 18, ///< Select SPI0 to be reset
    RESET_SPI1 = 19, ///< Select SPI1 to be reset
    RESET_SYSCFG = 20, ///< Select SYSCFG to be reset
    RESET_SYSINFO = 21, ///< Select SYSINFO to be reset
    RESET_TBMAN = 22, ///< Select TBMAN to be reset
    RESET_TIMER0 = 23, ///< Select TIMER0 to be reset
    RESET_TIMER1 = 24, ///< Select TIMER1 to be reset
    RESET_TRNG = 25, ///< Select TRNG to be reset
    RESET_UART0 = 26, ///< Select UART0 to be reset
    RESET_UART1 = 27, ///< Select UART1 to be reset
    RESET_USBCTRL = 28, ///< Select USBCTRL to be reset
    RESET_COUNT
} reset_num_t;

void reset_set(uint32_t hw);
void reset_release(uint32_t hw);
void reset_release_wait(uint32_t hw);
